import { dateParse } from '../plugins/utils'

const Utils = Object.create(null)
Utils.install = Vue => {
  Vue.prototype.$utils = {
    pm: p => p.then(data => [data, null]).catch(err => [undefined, err]),

    dateFormat: (date, fmt = 'yyyy-MM-dd hh:mm:ss') => {
      date = dateParse(date)
      if (!date) { return '' }
      const o = {
        'M+': date.getMonth() + 1,                   // 月份
        'd+': date.getDate(),                        // 日
        'h+': date.getHours(),                       // 小时
        'm+': date.getMinutes(),                     // 分
        's+': date.getSeconds(),                     // 秒
        'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
        'S': date.getMilliseconds()                  // 毫秒
      }
      if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
      }
      for (const k in o) {
        if (new RegExp('(' + k + ')').test(fmt)) {
          fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
        }
      }
      return fmt
    },

    removeDecimalZero: num => {
      return num ? num.replace(/(?:\.0*|(\.\d+?)0+)$/g, '') : ''
    }

  }
}

Vue.use(Utils)
